package com.winshare.saleAssistant.domain.dto.req;

import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

public class ProductInfoCreateDTO {

    @NotNull(message = "机构Id不可以为空")
    @Range(min = 1, message = "机构Id不能小于1")
    @ApiModelProperty(value = "机构Id不可以为空")
    private Integer organizationId;

    @NotBlank(message = "产品编号不可以为空")
    @Length(min = 1, max = 30, message = "产品编号长度需要在1-30个字符之间")
    @ApiModelProperty(value = "产品编号")
    private String productCode;

    @NotBlank(message = "产品名称不可以为空")
    @Length(min = 1, max = 100, message = "产品名称长度需要在1-100个字符之间")
    @ApiModelProperty(value = "产品名称")
    private String productName;

    @NotNull(message = "供应商Id不可以为空")
    @Range(min = 1, message = "供应商Id不能小于1")
    @ApiModelProperty(value = "供应商Id不可以为空")
    private Integer supplierId;

    @NotBlank(message = "供应商名称不可以为空")
    @Length(min = 1, max = 80, message = "供应商名称长度需要在1-80个字符之间")
    @ApiModelProperty(value = "供应商名称")
    private String supplierName;

    @NotBlank(message = "机构名称不可以为空")
    @Length(min = 1, max = 150, message = "机构名称长度需要在1-150个字符之间")
    @ApiModelProperty(value = "机构名称")
    private String organizationName;

    @NotBlank(message = "上市时间不可以为空")
    @ApiModelProperty(value = "上市时间")
    private String saleTime;

    @NotBlank(message = "应用学段不可以为空")
    @Length(min = 1, max = 20, message = "应用学段长度需要在1-20个字符之间")
    @ApiModelProperty(value = "应用学段")
    private String learningStage;

    @NotBlank(message = "应用学科不可以为空")
    @Length(min = 1, max = 20, message = "应用学科长度需要在1-20个字符之间")
    @ApiModelProperty(value = "应用学科")
    private String subject;

    @NotNull(message = "账号生成方式不可以为空")
    @Range(min = 1, max = 2,message = "账号生成方式：1,用户自建;2,系统分发")
    @ApiModelProperty(value = "账号生成方式：1,用户自建;2,系统分发")
    private Integer accountType;

    public ProductInfoCreateDTO() {
    }

    public Integer getOrganizationId() {
        return organizationId;
    }

    public void setOrganizationId(Integer organizationId) {
        this.organizationId = organizationId;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public Integer getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Integer supplierId) {
        this.supplierId = supplierId;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getOrganizationName() {
        return organizationName;
    }

    public void setOrganizationName(String organizationName) {
        this.organizationName = organizationName;
    }

    public String getSaleTime() {
        return saleTime;
    }

    public void setSaleTime(String saleTime) {
        this.saleTime = saleTime;
    }

    public String getLearningStage() {
        return learningStage;
    }

    public void setLearningStage(String learningStage) {
        this.learningStage = learningStage;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public Integer getAccountType() {
        return accountType;
    }

    public void setAccountType(Integer accountType) {
        this.accountType = accountType;
    }
}
